2005 東京エリア Debian 勉強会、関西出張版
事前資料
Debian 勉強会会場係 上川 純一
2005 10 29
Debian Project Official Developer
目次
1 Introduction To Debian 勉強会 2
1.1 講師紹介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Debian Weekly News trivia quiz 3
2.1 2005 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 2005 38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 2005 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 2005 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 2005 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6 2005 42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.7 2005 43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 最近の Debian 関連のミーティング報告 11
3.1 東京エリア Debian 勉強会 9 回目報告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 “claim” makes Debian better 12
4.1 本日の目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Debian Bug Tracking System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 BTS 用ツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 「重要度」と「タグ」 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5 BTS の心得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5 Starting debconf translation 16
5.1 必要なもの . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2 手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6 debbugs internal 17
6.1 はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.2 データ形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.3 コード形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.4 そして何がおきたか . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7 次回 24
1
東京エリア Debian 勉強会 2005
1 Introduction To Debian 勉強会
上川 純一
今月 Debian 勉強会へようこそ。これから Debian あやしい世界に入るという方も、すでにどっぷりとつかっ
ているという方も、月に一回 Debian について語りませんか?
目的として下記の二つを考えています
メールではよみとれない、もしくはよみとってられないような情報を情報共有する場をつくる
まとまっていない Debian を利用する際の情報をまとめて、ある程度の塊として出してみる
、東には Linux の勉Debian 勉強Linux の基
な利用方法などが知りたい方は、他でがんばってくださいDebian の勉強会ということで究極的には参加者全員が
Debian Package をがりがりと作りながらスーパーハッカーになれるような姿を妄想しています。
Debian これからどうするという能動的な展開への土台としての空間を提供し、情報の共有をしたい、というの
が目的です。次回は違うこと言ってるかもしれませんが、御容赦を。
1.1 講師紹介
やまね reportbug の使い手です。
上川 純一 dpkg-dev-el, debian-el の使い手です
2
東京エリア Debian 勉強会 2005
2 Debian Weekly News trivia quiz
上川 純一
ところで、Debian Weekly News (DWN) は読んでいますか?Debian 界隈でおきていることについて書いている
Debian Weekly News. 毎回読んいるといろいと分かって来ます、一人で読んでても、解説が少いので、
意味がわからないところもあるかも知れません。みんなで DWN を読んでみましょう
漫然と読むだけではおもしろくないので、DWN の記事から出題した以下の質問にこたえてみてください。後で内
容は解説します
2.1 2005 37
2005
9
13
日です
問題 1. バグトラッキングシステムの見栄えで最近かわったのは何か
A CSS を利用するようになった
B DHTML になった
C XHTML になった
問題 2. Debian UK で問題になったのは何か
A メンバーが活動的でないこと
B UK の経済状況がよろしくないこと
C 商用利用をしようとした場合の Debian という名前の商標の利用の許可をする基準が不明確だったこと
問題 3. ソフトウェアを計測する、という論文で発表されたのは何か
A Debian sarge には 2 3000 万行のソースコードが含まれている
B Debian sarge の品質を計測した
C Debian sarge の利用しやすさを計測した
問題 4. Joey Hess testing に対して security 対応をすることを発表した。それに利用しているサーバはどれか
A secure-testing.debian.net
B security.debian.org
C security.debuan.org
問題 5. /usr/doc をいまだにつかっているパッケージ数はどれくらいか
A 100
B 200
C 500
問題 6. planet.debian.org をメーリングリスト経由で配布しようという意見に対して出た反論は
A blog の内容は機密事項なので、メーリングリストで配布してほしくない
B メーリングリストとして配布するとサーバの負荷が高くなる
C blog の内容を永続的にメーリングリストのアーカイブとして保存されたくない
3
問題 7. /usr/share/doc/パッケージ名/examples/ にあるファイルに実行権限をつけることについてはどうするべ
きか
A サンプルは実行できるものは実行権限をつけるべき
B サンプルなんてかざりなので実行しなくてよい
C /usr/share 以下について実行権限をつけるのはこのましくなく、実行ファイルは bin におくべきだ。
問題 8. sponsors.debian.net が提供するサービスは何か
A 金銭的寄付をつのるフィッシングサイト
B 広告を配信し、広告収入を Debian プロジェクトの発展のために利用するサイト
C まだメンテナになっていない人が管理しているパッケージについてスポンサーが必要な状況をトラッキングする
システム
問題 9. 1.0beta3 のようなベータ版のバージョン番号が 1.0 のような最終版のバージョン番号より低い、 dpkg
判定してしまう。この状況に関してメンテナはどう対応するべきか
A 優先度の低い チルダ記 ˜を利用して、 1.0˜beta3 のような名前にする。ただまだアーカイブシステムが対応
していないので、今後の改善が必要。
B あきらめる
C ベータ版はパッケージ化しない
問題 10. ソースのみのパッケージのアップロードを可能にするという提案についての反論は何か
A バイナリが必要でなくなると、メンテナがテストをしなくなるのではないだろうか、という懸念がある
B ソースのみだとパッケージインフラが破綻する
C katie を改変するのが面倒
問題 11. BTS に任意のタグを追加できる機能が追加された、なんという機能か
A tagtag
B たぐるんです
C usertag
2.2 2005 38
2005 9 20 日です
問題 12. David Moreno Garza wnpp にて close したバグレポートの数は
A 729 のバグレポート
B 100 のバグレポート
C 123 のバグレポート
問題 13. International Conference on Open Source Systems に投稿された論文の中で説明されていた結果は
A 開発者は短期間でどんどん入れ替わる
B メンテナは実は幻想で、そんな人は存在しない
C 長いあいだアクティブに活動し、パッケージの数も多くメンテナンスする
問題 14. Frank Lichtenheld が発表したのはnon-free なドキュメントを削除する処理を開始するということだっ
4
た。状況をトラッキングするために彼が利用したインフラは。
A BTS のの usertags 機能で debian-release@lists.debian.org ユーザのタグとして管理
B Wiki ページ
C CVS 管理のテキストファイル
問題 15. Software freedom day 05 Debian-women が行って、結果として良かったので今後も継続すること
なったのは
A debian-women-new IRC チャンネルがよい結果をもたらしたので、今後は debian-women チャンネルに新人を
歓迎する時間帯というのをもうける
B CD をたくさん焼いたら人気だった
C Katie BTS などをインストールしてユーザがいじれるように提供したら人気だったので、今後もやる
問題 16. init.d スクリプトは現在直列に実行されているが、今後、並列実行を実装する際に便利だろうと思われる
LSB 規格の仕様は
A なんとなく並列に実行しても壊れないようにする仕様
B 気持の中だけでは並列な年頃
C init スクリプトの中で依存関係を記述できる仕様
問題 17. 新しいバージョンのパッケージにて問題が解決した場合の、バグレポートをクローズする方法でないのは
何か
A changelog でバグ番号を記述しアップロードする
B バージョンヘッダを付けて、リクエストを -done アドレスに投げる
C btsclose コマンドを利用する
問題 18. Marc Brockschmidt が説明した、新規メンテナプロセスの Front Desk の変更とは
A 今後はより厳しい思想チェックを行う
B Debian にコントリビュートしていることが要件になり、何もしていない場合は、応募が取り消される
C 年齢制限を設けます
問題 19. security.debian.org で問題になったのは何か
A セキュリティーアップデートが遅い
B セキュリティーアップデートが嘘だった
C xfree86 キュリティーアップ ネット secu-
rity.debian.org がサーバとして機能しなくなってしまった。
2.3 2005 39
2005 9 27 日です
問題 20. Ben Hutching Debconf について報告したのは
A もう終ってしまった事は忘れる
B 忘れ物がありました
C DVD が入手可能になった
問題 21. wiki.debian.org への移行で特に手動の労力が必要だったのはどこか
5
A でに wiki.debian.net から wiki.debian.org 移行してしまっているページがいくつかあったのでそれに対し
ての手動の対処
B kwiki から moinmoin へデータ形式の変更
C ドメイン名の登録
問題 22. init の時点では/ read-only マウントされているが、その時点でデータを保存するのにはどうしたら
よいか。
A メモリファイルシステムを/run にマウントする
B /mnt 以下にメモリファイルシステムをマウントする
C / rw にマウントしなおす
問題 23. グラフィックライブラリ GLU の実装が Debian 内で複数ある理由はなぜか
A 一部のコードが一部のハードウェアでしか動かないという状況が続いているから
B 複数のパッケージをメンテナンスしているほうがかっこいいから
C メンテナの仲が悪いから
問題 24. Jeroen van Wolffelaar が提案したのは
A libc5 を消す
B libc6 を消す
C libc6.1
を消す
問題 25. piuparts であきらかになる問題は
A purge する際に、essential ではないパッケージに依存して、動作しないパッケージ
B インストールしても動かないパッケージ
C 使ってみて使いにくいパッケージ
2.4 2005 40
2005 10 4 日です
問題 26. DPL チームが今後検討する予定の問題について記録する媒体として選択したのは
A BTS
B IRC bot
C Wiki
問題 27. tetex 3.0 はどういう状況になっているか
A 今後も入る見通しがない
B うごかなくて困っている
C experimental にアップロードされ、ライブラリのフリーズが完了したら unstable に入る
問題 28. Debian で配布する IA64 アーキテクチャ向けのカーネルについて Dann Frazier SMP じゃないカーネ
ルのサポートを削除しようとした、何故か
A SMP じゃないといやだから
B 時代は SMP です
C IA64 で、SMP でないシステムがほとんどなく、あまりテストされていない
6
問題 29. Wolfgang Borgert によると planet.debian.org と、メーリングリストの利用方法の違いは
A メーリングリストは古い技術なので今後はつかわなくなる
B blog フレームされないで意見を述べることのできるメディアだが、議論するのはメーリングリストでして欲
しい
C planet.debian.org は安定していないので使わないで欲しい
問題 30. pbuttonsd /dev/input/eventXX を利用しているが、どういう問題があったか
A makedev 、最大 32 あるうちの 4 しかデバイスファイルをつくっていなかったので、/dev を静的に管理し
ているユーザは一部の機能を利用できていなかった。
B USB 接続ではうまく認識できなかった
C 電源ボタンがおされたらアプリケーションがハングした。
2.5 2005 41
2005 10 11 日です
問題 31. Debian security で改善したのは
A バックエンドとフロントエンドのサーバを分割し、負荷に強い構成に変更した
B 特定のユーザが負荷をかけられないようにスロットリングした
C セキュリティーパッチをリリースしないことでサーバに負荷がかからないようにした
問題 32. Carlos Parra Camargo が報告したのは何か
A Wiki が悪意をもったユーザにより書き換えられていたので前のバージョンを復活させた
B Wiki がおもしろくないので改善しよう
C Wiki サーバがダウンしている
問題 33. mozilla 1.7.8 に対してのセキュリティーアップデートはどういう形でリリースされたか
A 1.7.10 にバージョン 1.7.8 という名前をつけてリリースした
B セキュリティーパッチをバックポートした
C セキュリティーホールのある機能を全て disable にした
問題 34. 複数の chroot で同じユーザ情報を利用するのに利用できる方法でないのは
A FUSE shadow etc
B LDAP
C rm /etc/passwd
問題 35. ソースコードにローカルに適用したパッチをパッケージのアップグレード後も維持するためにはどうした
ら一番楽か
A 自分でがんばる
B apt-src を利用する
C パッチはあてない
問題 36. Jurij Smakov がリリースした文書は何か
7
A Debian Users Handlebook: Debian ユーザをどうあつかえばよいのか、が書いてある
B Debian Developers Handlebook: Debian Developer をどう扱えば良いか、が書いてある。
C Debian Linux Kernel Handbook: Debian でカーネルがどうビルドされているのか、が書いてある
2.6 2005 42
問題 37. Eliveって何?
A 電子的に生きること
B enlightenment ベースの LiveCD
C Elise の新しいバージョン
問題 38. m68k について Steve Langasek が発表したのは
A m68k を自分もつかいたい
B m68k Debian の移植版の中で一番素晴らしい
C testing に入る条件として、m68k は無視することにした
問題 39. etch 向けの debian-installer の状況はどうか
A もう全アーキテクチャについてインストールできることは確認した
B もうすでに完全に動いている
C まだ一部のアーキテクチャではビルドできない
問題 40. gnome1 のパッケージがビルドできなくなったのはなぜか
A 古いから
B libpng10 が削除されたから
C gnome2 の時代がやっときたから
問題 41. Edd Dumbill が、sarge をインストールする際に、debian-installer を利用しているときにハードウェア
の問題にあたったときに利用するように提案したのは
A knoppix でハードウェア認識
B ハードウェアを買い替える
C Debian を使う事をあきらめる
問題 42. Oldenburg のミーティングの結果として、Debian security update Branden Robinson が報告したの
A security.debian.org のバックエンドサーバが冗長構成になった
B security.debian.org サーバが DNS のラウンドロビンで3台存在している構成がとれるようになった
C security.debian.org がフィッシングサイトになった
問題 43. ソフトウェアに含まれている画像のライセンスに Creative Commons BY-SA ライセンスを利用したもの
GPL のパッケージに含める事ができるか
A やめたほうがよい
B 可能
C MJ Ray によると、不可能なため、そのような場合は MIT ライセンスを利用したほうがよい
8
問題 44. Camm McGuire libbfd にリンクするのにはどうしたらよいのだ、と質問したときの Daniel Jacobwitz
の回答は
A libbfd は安定しているのでいくらでもリンクしてくれ
B よくバイナリレベルの互換性は破壊されるので、binutils-dev にある libbfd.a をつかってくれ
C 一般人は libbfd は使うな
2.7 2005 43
問題 45. Joerg Jaspert NEW のパッケージを REJECT する理由で多いと指摘したのは
A 読めないドキュメントが多い
B おもしろくないパッケージが多い
C debian/copyright が不正確なものが多い
問題 46. Steve Langasek が宣言した etch のリリーススケジュールによると、etch がリリースされるのは
A 2005 12
B 2006 6
C 2006 12
問題 47. 今月、Christian Perrier が宣言したかなり完成している、とコメントしていた debian-installer の機能は
何か
A sid をインストールするインストーラ
B etch 向けのテキストモードのインストーラ
C GTK を利用したグラフィカルインストーラ
問題 48. ypbind などが動的にポートを確保する場合、その後に起動するサーバとポート番号がかぶる場合がある
それを回避する方法は
A portreserve
B 祈る
C nis なんて使わない
問題 49. /etc/hosts に書いてある 127.0.0.1 のホスト名は現在の sid では何になるか
A ホスト名
B localhost.localdomain
C localhost
問題 50. slang 用のモジュールパッケージ名は今後’slang-モジュール名 という形になりそうだが、従来はどういう
名前だったか
A sl モジュール名
B モジュール名-slang
C モジュール名
問題 51. pbuilder の開発体制にどういう変化があったか
9
A 名前が変わりました
B チームメンテナンス制をとるために、alioth に移動した
C おもしろくなくなってきたのでもうやめます
問題 52. Daniel Ruoso が提案した Debian の移植版は
A uclibc 移植版
B minix 3.0 移植版
C z80 移植版
問題 53. curl について openssl 版と gnutls 版の両方を提供するようになった、その理由は
A GPL のプログラムが openssl とリンクしなくてすむように
B 二種類あったほうが楽しいから
C GNU のほうが openssl より凄いから
10
東京エリア Debian 勉強会 2005
3 最近の Debian 関連のミーティング報告
上川 純一
3.1 東京エリア Debian 勉強会 9 回目報告
前回開催した第 9 回目の勉強会の報告をします
当日のタイムテーブルは下記でした
18:10- quiz
18:30- こたえあわせ
19:00- 休憩
19:10- たるさん
20:10- 上川
21:00- 宴会
10 月の第 9 回東京エリア debian 勉強会報告。今回は debbugs についての熱い話しを展開しました。今回の参加人
数は登録者が 11 名くらいで、実際に参加したのが 9 名くらいでした。
DWN quiz に関しては、今回は小林さんが 1 問不正解で最高点数でした。
たるいしさん apt-listbugs について説明しました。昨年 Asia Debian Mini Conf で発表した内容を説明して、
実はそのころの TODO は進捗していない、ということを説明していました。osdn.debian.or.jp でミラーしているの
ですrsync とはもと master.debian.org だったが、同期できてないといバグ報告があってづいて、
merkel.debian.org 切替えたという話しがでていました。資料にあるグラフは2003年9月から2004年1
月で今は一年たっているので、おそらく700 IP アドレスからの利用があるのだろ、と予想していました。ま
た、中国で発表したときに、使ってみたら、バグの情報を取得するのに何分もかか、ミラーサーバ必要だ、という
話になった、がいまだになにもできていないとか、RSSViewer を使えば、自分のマシンに今入っているパッケージの
セキュリティー関連のバグだけを見る、ということができる。実は便利かもしれない、とか。メンテナンスにあき
きたのでどうせならかきなおしたいなぁという宣言もでていました。
上川が、Anthony Towns Finland debconf 発表していた内容と、その後にその発表に触発されて実装さ
Debbugs の新機能について話しました。おそらく Debbugs の仕様について日本語で記述した資料はこれが初めて
なのではないでしょうか。新しい機能がいろいろと実装されており、apt-listbugs でも利用できそうな情報もある
で、たるいしさんの今後のハックに期待です
11
東京エリア Debian 勉強会 2005
4 “claim” makes Debian better
やまね
4.1 本日の目的
Debian BTS について理解を深める
BTSって何さ?
どういうときにするの?
何がいいの?
実際どうすればいいの?
そして立派なクレーマーとして認められる!
4.2 Debian Bug Tracking System
Debian 独自のバグ追跡システム。システムとしては debbugs という独自のものを利用
特徴
Web から閲覧可能(まぁ、最近のは皆そうですね)
やり取りは基本的に全てオープン
メールベースで作業が進む(ここは珍しいかも)
かなり使い込まれてます30 万件近くが登録済み。
redhat bugzilla はこの半分ぐらいの件数
4.2.1 どんなときに BTS を利用しますか?
パッケージングのバグに遭遇したとき
アップグレードしたらよくわからない現象が起こるようになってしまったとき
いつまで経っても security fix が提供されないとき
気の利いた機能を実装したのでパッチを取り込んでもらいたいとき
地味∼な L10N な作業を取り込んでもらうとき
セキュリティホールの報告があったのでメンテナをせっつきたいとき
4.2.2 擬似パッケージ (pseudo package)
パッケージではないが、BTS で扱うためにパッケージとして扱うもの
Web サイト
wnpp 作業が望まれるパッケージ (ITP )
インストールシステム などなど
http://www.debian.org/Bugs/pseudo-packages.ja.html 参照
12
1 BTS のページ (http://www.debian.org/Bugs/)
ここでのポイント
あらゆる苦情・提案は BTS に集まる。誰も聞いていないところで文句を言うのではなく BTS すべし。
4.3 BTS 用ツール
4.3.1 reportbug/querybts
reportbug コマンド
簡単にバグレポート・レポートの検索が可能
対話的な操作が可能です
レポートはメールで飛びます。ポーンと。
レポートは gnupg で署名も可能。まるでちゃんとした報告みたいに見えます
querybts コマンド
バグレポートの検索に特化しています
13
2 reportbug の画面
4.3.2 debbugs-el
emacs ユーザは、 debbugs-el ケージに含まれる debian-bug コマンドを使うこともできますM-x debian-bug
と入力すると、reportbug よく似たやり方で、全ての必要事項を尋ねられます…らしい。emacs 使ってないので
不明)
4.4 「重要度」と「タグ」
4.4.1 Severity (重要度) レベル
http://www.debian.org/Bugs/Developer#severities 参照
critical(致命的)
システム上の関係のないソフトウェア (またはシステム全体) を破壊する、重大なデータの欠落を引き起こ
または、そのパッケージをインストールしたシステム上でセキュリティホールが生じる場合。
grave(重大)
問題のあるパッケージが使用できない、またはほとんど使用できない。またはデータの欠落を引き起こす、そ
のパッケージを使用するユーザのアカウントにアクセスを許してしまうセキュリティホールが生じる場合。
serious(深刻)
Debian シーせな (かに”must” ”required”
している)、まはパッケージメンテナ意見としてそのパッケージリリースに適してないと判断された
場合。
important(重要)
バグがパッケージの利用に大きく影響しており、対処しなければ誰にもまったく使用できない場合。
normal(通常)
デフォルト値。通常のバグ
minor(軽度)
14
問題がパッケージの利用に影響しない、かつ修正はたいした事がないと思われる場合。
wishlist(要望)
将来的な要望、主に設計上の理由により修正が非常に困難なバグ
4.4.2 タグ
http://www.debian.org/Bugs/Developer#tags 参照
patch(パッチ)
バグ報告に、バグを修正するためのパッチや簡単な手順が含まれています パッチがあってもバグを適切に解
決できない場合や別の問題を生じる場合は、 このタグは使うべきではありません。
security(セキュリティ)
このバグはパッケージのセキュリティ問題を説明します とんどのセキュリティバグは、critical (致命)
grave (重大) severity (重要度) も設定すべきです
upstream(上流)
このバグは、パッケージの上流の部分に影響します
d-i(インストーラ)
このバグは、debian-installer に関するものです インストーラの開発に関係するけれども、インストーラ
直接の 構成要素ではないパッケージに対するバグの場合、このタグを使ってください。
L10n
このバグは、パッケージの地域化に関するものです
woody / sarge / sid / experimental
このバグは特に各ディストリビューション に加えられるものです
4.5 BTS の心得
何よりも相手を尊重しよう
事実を端的に述べよう
環境の記述は多すぎず少なすぎずを目指そう
バージョンやアーキテクチャぐらい書こう(面倒な人はツールを使いましょう)
broken English でもいいや、と開き直ろう
でも多少は体裁は整えておこう
gnupg 使ってみるとか
定型シグネチャ使っておくとか
15
東京エリア Debian 勉強会 2005
5 Starting debconf translation
やまね
http://kmuto.jp/debian/po-trans/ に翻訳の状況が掲載されている。
5.1 必要なもの
debconf-updatepo
po が最新のものかをチェック
msgfmt
文法があっているかをチェック
5.2 手順
1. po-debconf をインストール
apt-get install po-debconf
2. 翻訳したいパッケージのソースをインストール
apt-get source <packagename>
3. template.po をコピーして翻訳する
cd <packagename>/debian/po
cp template.pot ja.po
4. 査読してもらう
debian-doc@debian.or.jp とかに投げる
5. BTS する
reportbug -A 翻訳したファイル -g
ファイルを添付して GPG Sign してバグレポート送信
16
東京エリア Debian 勉強会 2005
6 debbugs internal
上川
6.1 はじめに
この書は Anthony Towns フィンランドの debconf 5 で発表し内容を日にて展開るための料で
Anthony Towns 作成した英語の資料を省略して抜粋しています。また、それ以降に変更した事項について追記
ています
Debian Bug Tracking System (BTS) は、ほぼ Debian に特化したバグ報告の管理のためのシステムです。他のプ
ロジェクトでも利用されていることもありますがDebian でバグがパッケージベースで厳格に分類できることなど
の特性が反映されているため、Debian プロジェクトのワークフローで使いやすいように作られています
*
1
規模としては55000 以上の現在アクティブなバグ報告231000 のアーカイブされたバグ報告を現在保持してい
て、毎 1000 以上の新規のバグ報告が追加されていま。ウェブインタフェースは追加された報告をすぐに反映し
ており、過去、ダウンタイムもほとんど発生していません。
Anthony Towns によると下記がバグトラッキングシステムの要件です
ンタフェース: がメルで作でるよになって、誰でウェブでできようなって
いる。
パッケージベース: バグ報告をパッケージ別に高速に管理する必要がある
スケーラビリティー: 大量のバグ報告に対応できる必要がある
即時性: 現在のバグの状態をすぐに報告してくれる必要があり、バグの状態が変更されたらすぐに反映される
必要がある
安定性: 継続して動作する必要がある。新規の機能がどんどん追加されたとしても。
公開: 議論の内容に Debian コミュニティー全体として参加できるように、永続的な公開記録として保存され
る必要がある。
6.2 データ形式
バグデータベースのスプールの形式は下記です。リレーショナルデータベースなどは利用していません、スプール
ディレクトリ以下にほとんどのデータが格納されています
各バグについて、ファイルはそれぞれ4個あります。サマリーファイルはメタデータを保存します。ログファイル
は、そのバグに対して流れたメールを全て保存します
status ファイル換性ために存してます。report ファイルは、最初の報告メーで、バ
close されるときに送信されるものです
/org/bugs.debian.org/spool
incoming/
T.*
S[BMQFDU RC] *.*
*
1
Debian のインフラと統合されており、changelog にバグ番号を記述してパッケージをアップロードしたらバグが修正されたと記録される
ようになっていたりします
17
R[BMQFDU RC] *.*
I[BMQFDU RC] *.*
G[BMQFDU RC] *.*
P[BMQFDU RC] *.*
db-h/
00/
· ..
· 314200.log
· 314200.report
· 314200.status
· 314200.summary
..
99/
archive/
00/
..
99/
index.db index.db.realtime へのシンボリックリンク
index.archive index.archive.realtime へのシンボリックリンク
nextnumber
6.2.1 incoming
incoming に来たメールは処理中、名前を変えます
T receive によってうけとられた
S SPAM 確認待ち
R SPAM 確認中
I SPAM チェック通った
G service process スクリプトを通った
P process
また、ファイル名の二つ目の文字はどこのメールアドレスにメールが送信されてきたものなのかということを示
ます。ファイル名ののこりは、バグ番号と、一意な ID です。一意な ID を決定するのに現在は時間とプロセス番号を
利用しています
B: 通常のバグ報告。submit@ 1234@
M: -maintonly メーリングリストに投げない
Q: BTS に登録しない。-quiet
F: アップストリームにフォーワード -forwarded
D: バグ終了 -done
U: サブミッターにメール -submitter
R: ユーザのリクエスト用インタフェース request@
C: デベロッパーの制御用インタフェース control@
18
6.2.2 Status Summary
status ファイルの中身は行ベースです。無い行については空行とみなします。このファイルは今後なくしていこう
としています
バグ報告者のメールアドレス
時間 ()
サブジェクト
元のメールのメッセージ ID
バグがアサインされているパッケージ
タグ
close した人のメールアドレス
上流のメールアドレスか URL(forward されたばあい)
マージされているバグ番号
severity
summary ファイルは RFC822 形式で、拡張可能になっています。現在 Format-Version: 2 3 の二つの形式があ
ります3 は、ヘッダについては RFC1522(MIME) のデコードされた形式になっています
Format-Version: このファイル形式のバージョン
Submitter: バグ報告者のメールアドレス
Date: 時間 ()
Subject: サブジェクト
Message-ID: 元のメールのメッセージ ID
Package: バグがアサインされているパッケージ
Tags: タグ
Done: close した人のメールアドレス
Forwarded-To: 上流のメールアドレスか URL(forward されたばあい)
Merged-With: マージされているバグ番号
Severity: severity
Owner: バグの所有者
6.2.3 log ファイル
あらゆるール log ファイには追記されいきます。また、メタデタも追記されています。残念ながら
メタデータは生の HTML 書かれており、またバージョンによって記述の仕方が変わってお、さらに悪いことに、
古いバグの中にあるテキストは更新されていないため、機械的に処理することは難しくなっています
また、コントロール情報は、行頭のエスケープコードにより切り替わります。メールの中にエスケープコードのよ
うな文字列が出て来たら、それは文字コード 030(8 進数) の文字を追加してエスケープします
詳細は Debbugs::Log を見てください。
kill-init: まだ一行も処理していません
incoming-recv: 07: あとに go がくる、Received:
autocheck: 01: X-Debian-Bugs-..: までの無視されている行、autowait が次に来る
html: 06: 生で表示すべき HTML
recips: 02: メールの受取人、04 で分割されている
go: 05: メールの文書
19
go-nox: X: メールの文書、X ではじまる行
kill-end: 03: メッセージの終り
autowait: go-nox があとにくる、空行まで無視されるその他の情報。
6.2.4 Index ファイル
index イルは、pkgreport.cgi がどのパケージにどのバグがわりあてられているかを確認するための情報です
以前は、by-package.idx by-severity.idx というのがあり高速化に貢献するはずだったのですが、一年以上長い
間生成されていなかったうえに、生成されていなかったことに誰も気づかなかったので必要ないんじゃないだろうか、
ということです
データ形式としては下記のようになります。パッケージ、バグ番号、時間、ステータス、メールアドレス、severity
の順に書いた行が全てのバグに対して作成されています
pbuilder 317998 1121196782 open [Junichi Uekawa <dancer@netfort.gr.jp>] normal
6.3 コード形式
debbugs は特に設計もされずに長い間パッチを累積してきました。ただ、明確にわかれている部分はあって、メ
ルを処理するコアのインタフェースのスクリプトと、ウェブを表示するための CGI 部分とで分離できます
設定ファイルは全て/etc/debbugs にあります
6.3.1 コアのスクリプト
メールを処理する部分があります
errorlib: ライブラリ
receive: MTA からメールを受信する
spamscan: 受信メールを SPAM チェックする
processall: process service にメールを分配する
process: バグメールを処理する
service: control@ report@ メールを処理
expire: close されてから 28 日過ぎたバグをエキスパイア処理する
rebuild: index ファイルをリビルド
receive rebuild 以外は cron から起動しています。15 分に一回しか動作しません。
6.3.2 CGI スクリプト
CGI 関連は、errorlib 関数を活用している部分もありますが、ほぼ独立しています
bugreport.cgi: バグレポートを一つ表示
pkgreport.cgi: パッケージやサブミッタなどでサマリを作成する
pkgindex.cgi: パッケージや severity に対して数を表示
common.pl: ライブラリとして利用
pkgreport.cgi はユーザが直接ウェブでたたくため、特に速度が重要視される部分なので、触る場合には注意してく
ださい。
6.3.3 ハックするには
debbugs CVS 。まDebian Developer 、ミ merkel.debian.org
/org/bugs.debian.org 以下にあります
20
6.4 そして何がおきたか
Anthony Towns の発表でどういう結果がもたらされたか見てみましょう
6.4.1 バージョントラッキング
バグがどのバージョンで発見され、どのバージョンで修正されたのかというのをトラッキングできるようになり
した。従来は発見されたバージョンだけが Version ヘッダで分かるようになったのですが、それ以外の情報も保持
るようになりました。
http://lists.debian.org/debian-devel-announce/2005/07/msg00010.html
バグ番号を保持して操作するための BTS のコマンドは下記です
close バグ番号 バージョン
reassign バグ番号 パッケージ バージョン
found バグ番号 バージョン
またkatie が変更され、バグを close するメッセージには、下記のヘッダが付くようになりました。それ BTS
が処理して close されたバージョンを把握できるようになりました。
Source-Version: バグ番号
CGI version 、そジョンす。329344
*
2
0.4 open
だった 0.5 close なった http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=
cowdancer&version=0.4 http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=cowdancer&version=
0.5 二つのページを比較するとわかります
/org/bugs.debian.org/spool/db-h/44/329344.summary を見ると、メタデータとして保存されているのがわかり
ます
Format-Version: 2
Found-In: cowdancer/0.4
Done: Junichi Uekawa <dancer@debian.org>
Subject: cowdancer: cow-shell does not start, gives error
Date: 1127295198
Submitter: Francesco Potorti‘ <Potorti@isti.cnr.it>
Fixed-In: cowdancer/0.5
Package: cowdancer
Message-Id: <E1EI0YD-0003lE-00@pot.isti.cnr.it>
Severity: grave
6.4.2 ユーザタグ
http://lists.debian.org/debian-devel-announce/2005/09/msg00002.html
request@bugs.debian.org に対して下記のようなメールをおくればタグが追加できます
user aj@azure.humbug.org.au
usertag 18733 + good-reasons-to-run-for-dpl
usertag 18733 + still-cant-believe-it-finally-got-fixed
usertag 62529 + your-days-are-numbered
見る際には、users=でユーザを指定するとタグが見えるようになります
http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=dlisp;users=dancer@debian.org
また、tag でタグを指定して、users=でユーザを指定するとそのユーザで作成したタグを全て検索することができ
ます
http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ignore-for-now;users=dancer@debian.org
6.4.3 バグ購読
http://lists.
debian.org/debian-devel-announce/2005/07/msg00014.html
*
2
http://bugs.debian.org/329344
21
バグ番号-subscribe@bugs.debian.org にメールを出すと登録するようにメールがかえって来るので、それに
信すると、バグ番号に登録されます
6.4.4 バグブロッカー
どのバグがどのバグによって邪魔されているのかというのをトラッキングするための機能が追加されました。
block 保留中のバグ番号 by 原因のバグ番号
unblock 保留中のバグ番号 by 原因のバグ番号
6.4.5 mindays maxdays
mindays, maxdays オプションが追加されました。バグ報告の報告されてからの日数で表示させるかさせないか
選択できるオプションです
http://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=dancer@debian.org&maxdays=90 http:
//bugs.debian.org/cgi-bin/pkgreport.cgi?maint=dancer@debian.org&mindays=90 として入力できます。
6.4.6 バグ検索システム
Google master.debian.org にとって DoS になるような検索の仕方をしていたので、現在 BTS google の検索
対象にははいっていないので検索サービスが必要だろう、という話題が出ていました。
鵜飼さんが全文検索エンジンサービス (FABRE) を実装しましたが、まだ本格的に使われるような状態にはまだい
たっていないようです結構このサービスは負荷が高いのが問題になると思われますhttp://fabre.debian.net/
6.4.7 debian-bugs.el はまだ動くのか
reportbug vi ーザ心とンタフェーになってが、Emacs を利いるdebian-
bugs.el を利用して debian BTS を操作することができます
ば、debian-changelog-mode 使ってであchangelog リー
なっています。メニューから Bugs close を選択するか、debian-changelog-close-bug でバグ番号を選択する (タブ補
完がききます) と、下記のようなエントリーが作成できます
dsh (0.25.6-2) unstable; urgency=low
* Bug fix: "How to control dsh timeout time?", thanks to Junichi Uekawa
(Closes: #281012).
* Bug fix: "allow exclusion of host from list of hosts.", thanks to
Junichi Uekawa (Closes: #289766).
* Bug fix: "dsh: -c -i hangs if no input under current design", thanks
to Charles Fry (Closes: #241531).
機能 207852
*
3
川のパッチ発端した、気正規なってい
ます
ひさしぶりにソースコードをみたら、現在の実装は、正規表現をつかいまくって HTML を解析しているため、何
ギュラあった、動。該 emacs-goodies-el:/elisp/debian-
el/debian-bug.el(debian-bug-build-bug-menu) です
BTS のフォーマットが変わったので、何かうごかなくなっていないかと心配していましたが、特にうごかないとい
うことはないようです
みてみると submitter のメールアドレスがうまく解析できなかった場合には’thanks to XXXX (closes: XXXX)’
が追加されないという仕様になっています。たまにこれが発生するので、再現する条件をさがしてバグを直したいで
すね。
*
3
http://bugs.debian.org/207852
22
(with-temp-buffer
(message "Fetching bug list...")
(call-process "wget" nil ’(t t) nil "--quiet" "-O" "-"
(concat
"http://bugs.debian.org/cgi-bin/pkgreport.cgi?src="
package))
(message "Fetching bug list...done")
(goto-char (point-min))
(while
(re-search-forward
"\\(<H2.*</a>\\(.+\\)</H2>\\)\\|\\(<li><a
href=\"\\(bugreport.cgi\\?bug=\\([0-9]+\\)\\)\">\\(#[0-9]+: \\(.+\\)\\)</a>\\)"
nil t)
(let ((type (match-string 2))
;;(URL (match-string 4))
(bugnumber (match-string 5))
(description (match-string 6))
(shortdescription (match-string 7)))
(cond
(type
(setq bugs-are-open-flag (not (string-match "resolved" type)))
(save-excursion
(set-buffer debian-bug-tmp-buffer)
(insert "\"-\"\n\"" type "\"\n")))
(t
(setq bug-alist (cons (list bugnumber description) bug-alist))
(when bugs-are-open-flag
(when (and (re-search-forward
"Reported by: <a class=\"submitter\"
href=\"pkgreport.cgi\\?submitter=[^;]+;arch=source\">"
nil t)
(or (looking-at "&quot;\\(.*\\)&quot; &lt;")
(looking-at "\\(.*\\) &lt;")))
(setq shortdescription
(concat "Bug fix: \"" shortdescription
"\", thanks to "
(debian-bug-rfc2047-decode-string
(match-string 1))
" (Closes: #" bugnumber ").")))
(setq bug-open-alist
(cons
(list bugnumber shortdescription)
bug-open-alist)))
changelog emacs-goodies-el:elisp/dpkg-dev-el/debian-changelog-mode.el(debian-
changelog-close-bug) にあります。
23
東京エリア Debian 勉強会 2005
7 次回
次回は 11 12 日土曜日の夜を予定しています内容は小林さんによる DWN の翻訳フローについての話しと、
とーさんによる dpkg-statoverride についての話しです。
参加者募集はまた後程。
24
Debian 勉強会資料
2005 10 29 初版第 1 刷発行
東京エリア Debian 勉強会 (編集・印刷・発行)
25